<?php
declare (strict_types=1);

use think\facade\Route;

//前缀
$namespace = '\app\admin\controller\base';
/**
 * 后台管理
 */
Route::group('base', function () use ($namespace) {

    Route::post('adminLogin$', $namespace . '\Admin@login')->name('管理员登录');
    Route::post('tests$', $namespace . '\Student@import2')->name('导入test');
    Route::post('stests$', $namespace . '\Student@import3')->name('导入专业和年级班级');
//    Route::any('index$', $namespace . '\Index@index')->name('测试');//todo
//    Route::get('today$', $namespace . '\Index@today')->name('统计数据');//todo

})->middleware(middleware\NoAuthMiddleware::class, 'admin');

/**
 * 后台管理
 */
Route::group('base', function () use ($namespace) {

    //班级管理
    Route::resource('grades', $namespace . '\Grades')->name('年级');
    Route::resource('classes', $namespace . '\Classes')->name('班级');
    Route::resource('special', $namespace . '\Special')->name('专业管理');
    Route::resource('studentGroup', $namespace . '\StudentGroup')->name('分组管理');
    Route::resource('duties', $namespace . '\Duties')->name('职务列表');
    Route::get('specialList$', $namespace . '\Special@index2')->name('专业管理');
    Route::get('index$', $namespace . '\Index@index')->name('首页数据统计');
    Route::get('config$', $namespace . '\Index@config')->name('获取配置信息');
    Route::get('statistics$', $namespace . '\Index@statistics')->name('首页数据统计图');
    Route::resource('student', $namespace . '\Student')->name('学生管理');
    Route::post('studentIndexExport$', $namespace . '\Student@indexExport')->name('根据学生列表筛选导出学生');
    Route::post('studentImport$', $namespace . '\Student@import')->name('导入学生');
    Route::post('studentImportSetAttrs$', $namespace . '\Student@importSetAttrs')->name('导入学生设置分组');
    Route::post('studentSetAttr$', $namespace . '\Student@setAttrs')->name('批量设置学生分组');
//    Route::resource('questionCate', $namespace . '\QuestionCate')->name('题库分类');
    Route::resource('question', $namespace . '\Question')->name('题库列表');
    Route::resource('subjectCate', $namespace . '\SubjectCate')->name('题目分类');
    Route::resource('subject', $namespace . '\Subject')->name('题目');
    Route::post('subjectStatus$', $namespace . '\Subject@subjectStatus')->name('题目启用和禁止');
    Route::resource('paper', $namespace . '\Paper')->name('试卷');
    Route::get('paperStatistics$', $namespace . '\Paper@statistics')->name('单个试卷统计');
    Route::get('paperExport$', $namespace . '\Paper@export')->name('单个试卷考试信息导出');
    Route::post('subjectImport$', $namespace . '\Subject@import')->name('根据题库导入题目');
    Route::get('drillStatistics$', $namespace . '\Practise@statistics')->name('单个练习统计');
    Route::get('paperStudentList$', $namespace . '\Paper@studentList')->name('单个试卷学生考试列表');
    Route::get('drillStudentList$', $namespace . '\Practise@studentList')->name('单个练习学生练习列表');
    Route::post('paperRelease$', $namespace . '\Paper@paperRelease')->name('练习发布或者取消发布');
    Route::post('paperSubjectDel$', $namespace . '\Paper@paperSubjectDel')->name('试卷题目删除');
//    Route::resource('paperCate', $namespace . '\PaperCate')->name('试卷分类');
    Route::resource('paperSubject', $namespace . '\PaperSubject')->name('试卷题目');
    Route::resource('drill', $namespace . '\Practise')->name('练习');
    Route::resource('studentPaper', $namespace . '\StudentPaper')->name('学生考试');
    Route::get('paperList', $namespace . '\StudentPaper@index2')->name('已发布的试卷');
    Route::post('scoring', $namespace . '\StudentPaper@scoring')->name('题目打分');
    Route::post('binding', $namespace . '\StudentPaper@binding')->name('绑定学生');
    Route::post('drillRelease$', $namespace . '\Practise@drillRelease')->name('练习发布或者取消发布');
    Route::post('drillSubjectDel$', $namespace . '\Practise@drillSubjectDel')->name('练习题目删除');
//    Route::resource('practiseCate', $namespace . '\PractiseCate')->name('练习分类');
//    Route::resource('practiseSubject', $namespace . '\PractiseSubject')->name('练习题目');
    Route::resource('drillSubject', $namespace . '\PractiseSubject')->name('练习题目');
    //管理员模块
    Route::get('adminLogout$', $namespace . '\Admin@logout')->name('管理员退出');
    Route::get('adminInfo$', $namespace . '\Admin@getInfo')->name('获取管理员信息');
    Route::get('adminList$', $namespace . '\Admin@list')->name('管理员列表');
    Route::post('adminAdd$', $namespace . '\Admin@add')->name('添加管理员');
    Route::post('adminImport$', $namespace . '\Admin@import')->name('导入教师');
    Route::put('adminEdit$', $namespace . '\Admin@edit')->name('编辑管理员');
    Route::delete('adminDel$', $namespace . '\Admin@del')->name('删除管理员');
    Route::put('adminEnable$', $namespace . '\Admin@enable')->name('禁用或启用管理员');
    Route::put('adminEditPwd$', $namespace . '\Admin@editPwd')->name('管理员修改密码');
    Route::post('adminAvatar$', $namespace . '\Admin@modifyAvatar')->name('管理员修改头像');
    //系统配置
    Route::post('sysConfigImageUpload$', $namespace . '\SysConfig@imageUpload')->name('系统配置图片上传');
    Route::post('imageUploads$', $namespace . '\SysConfig@imageUploads')->name('系统配置图片上传');
    Route::get('sysConfigList$', $namespace . '\SysConfig@list')->name('系统配置列表');
    Route::put('sysConfigEdit$', $namespace . '\SysConfig@edit')->name('系统配置编辑');
    //系统日志
    Route::get('sysLogList$', $namespace . '\SysLog@list')->name('系统日志列表');
    //系统埋点
    Route::get('sysSignPointAll$', $namespace . '\SysSignPoint@pointAll')->name('系统埋点枚举');
    Route::get('sysSignPointList$', $namespace . '\SysSignPoint@pointList')->name('系统埋点列表');
    //菜单管理
    Route::get('authRouters$', $namespace . '\Menu@authRouters')->name('获取菜单目录');
    Route::get('authMenuTree$', $namespace . '\Menu@menuTree')->name('菜单管理树状图');
    Route::get('authMenuList$', $namespace . '\Menu@menuList')->name('菜单管理列表');
    Route::post('authMenuAdd$', $namespace . '\Menu@menuAdd')->name('菜单管理添加');
    Route::put('authMenuEdit$', $namespace . '\Menu@menuEdit')->name('菜单管理编辑');
    Route::delete('authMenuDel$', $namespace . '\Menu@menuDel')->name('菜单管理删除');
    //角色管理
    Route::get('authRoleList$', $namespace . '\Menu@roleList')->name('角色管理列表');
    Route::get('authRoleListAll$', $namespace . '\Menu@roleListAll')->name('角色管理全部列表');
    Route::post('authRoleAdd$', $namespace . '\Menu@roleAdd')->name('角色管理添加');
    Route::put('authRoleEdit$', $namespace . '\Menu@roleEdit')->name('角色管理编辑');
    Route::delete('authRoleDel$', $namespace . '\Menu@roleDel')->name('角色管理删除');
    Route::put('authRoleStatus$', $namespace . '\Menu@roleStatus')->name('角色管理状态');
    //角色分配用户管理
    Route::get('authRoleAssignedList$', $namespace . '\Menu@roleAssignedList')->name('角色已分配用户列表');
    Route::get('authRoleUnassignedList$', $namespace . '\Menu@roleUnassignedList')->name('角色未分配用户列表');
    Route::post('authRoleAuthorization$', $namespace . '\Menu@roleAuthorization')->name('角色未分配用户授权');
    Route::post('authRoleUnAuthorization$', $namespace . '\Menu@roleUnAuthorization')->name('角色已分配用户取消授权');
    //公众号菜单配置
    Route::get('officialAccountGetMenu$', $namespace . '\OfficialAccount@getMenu')->name('获取公众号配置');
    Route::get('officialAccountGetMenuList$', $namespace . '\OfficialAccount@getMenuList')->name('查询公众号菜单配置');
    Route::delete('officialAccountDeleteMenuAll$', $namespace . '\OfficialAccount@deleteMenuAll')->name('删除所有的菜单');
    Route::get('officialAccountGetWxMenu$', $namespace . '\OfficialAccount@getWxMenuList')->name('获取公众号配置-数据库');
    Route::post('officialAccountCreateWxMenu$', $namespace . '\OfficialAccount@createWxMenu')->name('创建公众号-数据库');
    Route::put('officialAccountUpdateWxMenu$', $namespace . '\OfficialAccount@updateWxMenu')->name('修改公众号菜单-数据库');
    Route::delete('officialAccountDeleteWxMenu$', $namespace . '\OfficialAccount@deleteWxMenu')->name('删除公众号菜单-数据库');
    Route::get('officialAccountGetAutoRely$', $namespace . '\OfficialAccount@autoRely')->name('获取当前自动回复设置');
    Route::get('officialAccountGetKeywordList$', $namespace . '\OfficialAccount@getKeywordList')->name('获取消息回复列表');
    Route::post('officialAccountCreateKeyword$', $namespace . '\OfficialAccount@createKeyword')->name('添加消息回复');
    Route::put('officialAccountUpdateKeyword$', $namespace . '\OfficialAccount@updateKeyword')->name('编辑消息回复');
    Route::delete('officialAccountDeleteKeyword$', $namespace . '\OfficialAccount@deleteKeyword')->name('删除消息回复');
    Route::post('officialAccountPushMenu$', $namespace . '\OfficialAccount@pushMenu')->name('发布菜单');
    Route::post('officialAccountUpload$', $namespace . '\OfficialAccount@upload')->name('上传文件');
    //用户管理
    Route::get('userList$', $namespace . '\User@userList')->name('用户列表');
    Route::get('userBagList$', $namespace . '\User@userBagList')->name('取袋记录');

})->middleware(middleware\AuthMiddleware::class, 'admin');




